package org.nanotek.cms.domain.person.individuals;

import java.util.Collection;

import org.nanotek.Base;
import org.nanotek.cms.domain.person.Individual;

/**
 * An extension of the individual interface, describes the following, given a certain circunstance, 
 * which Collection of Objects such individual has preferences, for example, a "monkey" that under laboratory
 * always choose the same sort of objects of a set of different objects. 
 * 
 * Which means by under "strict circunstances" the method "getConcretePreferences" will always return the same 
 * Collection of objects.
 * 
 * @author josecanovamauger
 *
 * @param <T>
 * @param <P>
 */
public interface ConcreteTypeIndividual<T extends Base<?> , P extends AbstractTypeIndividual<T,P>> extends Individual <T,P,T> , Base<T>{

	public Collection<?> getConcretePreferences();

}